The present invention relates to spreadsheets for computer programs, and in particular, to spreadsheets that are available as software services.
Spreadsheets are a computer program application that may be used for data analysis. Common spreadsheet programs include Excel® by Microsoft® Corp. or Lotus® from IBM® Corp., for example. In a spreadsheet program, a user is presented with an array of cells (columns and rows). A user may enter data into one or more cells, and program other cells to be functionally related to the cells containing data. For example, a column of cells may include data indicating the cost of manufacturing a product, and data in each row may represent the cost of manufacturing a particular product (e.g., in dollars). Another cell in the spreadsheet may be programmed to calculate and display the sum of the values in the column to show the total cost of manufacturing all the products. Spreadsheet programs include a wide range of programming options and functions, and a single spreadsheet may include many pages (or sheets) with a variety of data or calculated data. Accordingly, complex spreadsheets may be created to flexibly meet the data analysis needs of individual users. Additional spreadsheet functionality includes generating graphical images such as charts or graphs to illustrate trends or relationships between the data, defining “macros” to perform data calculations, and linking the inputs of cells to programming code (e.g., Visual Basic Code) to implement user programmed functionality.
While spreadsheets represent a powerful mechanism for allowing users to analyze data, one problem associated with spreadsheets is that the spreadsheet files are typically generated and stored using a resident software program, such as Excel®. For example, users typically create new spreadsheets on their local personal computer. The result is that an organization may possess large volumes of data analysis that may not be reusable across users. FIG. 1 illustrates some example spreadsheets that may be created in an organization. In this example, the organization may include three (3) business units (“Business Unit A”, “Business Unit B”, “Business Unit C”), a finance department, a sales department, and a manufacturing facility. Each unit of the organization may include personnel who generate numerous spreadsheets to analyze data relevant to their part of the organization. In particular, Business Unit A may include N spreadsheets 101 (where N is a number of spreadsheets) including data and functionality specific to Business Unit A. Similarly, Business Unit B may include I spreadsheets 103 (where I represents the number of spreadsheets) including data and functionality specific to Business Unit B. Likewise, Business Unit C and the Finance, Sales, and Manufacturing Departments may each include numerous spreadsheets 105, 102, 104, and 106, respectively, tailored to analyze data relevant to these organizational units. However, accessing and using the numerous spreadsheets across the organization can be extremely difficult to manage using existing spreadsheet technology. While some mechanisms for sharing spreadsheets across networks exist (e.g., Excel® sharing features), such solutions are typically integrated tightly with the underlying spreadsheet program and may have limited use outside such program.
Thus, there is a need for improved techniques for sharing the features and functions in spreadsheets. The present invention solves these and other problems by providing spreadsheet software services.